package com.zang.everyday;

/**
 * @Author: ZVerify
 * @Description: https://leetcode.cn/problems/check-if-binary-string-has-at-most-one-segment-of-ones/
 * @DateTime: 2022/10/3 10:54
 **/
public class 检查二进制字符串字段 {

    /**
     * 这道题虽然是个easy但是他的题目说的有点不清晰应该是这样的
     * 一个或多个1是一个连续字段，比如1、1111。如果字符串s含有的连续字段数目≤1，则返回true，否则为false。
     */

    //这道题有两种想法，第一种就是题目已经给出来了，s.charAt(0) == 1，我们可以先遍历找到第一个不为1的值索引，如果后边还有1直接返回false，否则返回true

    public boolean checkOnesSegment(String s) {

        int index = 0;
        while (index<s.length() && s.charAt(index)!='0'){
            index++;
        }

        index++;

        while (index<s.length()){
            if (s.charAt(index)!='0'){
                return false;
            }
            index++;
        }

        return true;

    }

    // 第二种就是从后往前遍历，找到第一个等于1的索引，如果前边还有0则返回false，否则返回true
    public boolean checkOnesSegment1(String s) {

        int r = s.length()-1;

        while (r>=0 && s.charAt(r)!='1' ){
            r--;
        }
        r--;
        while (r>0){
            if (s.charAt(r)=='0'){
                return false;
            }
            r--;
        }

        return true;
    }
}
